/* 
 * File:   Project.h
 * Author: k0l0b0k
 *
 * Created on 8 Октябрь 2009 г., 13:22
 */

#ifndef _PROJECT_H
#define	_PROJECT_H

#include <QString>
#include <QMap>
#include "ProjectOptions.h"
#include "../OutputStream.h"
#include "Project.h"
#include "Keywords.h"

class SourceFile;
class Namespace;

class Project
{
public:
	Project(ProjectOptions* pOpts);
	virtual ~Project();

	ProjectOptions* Options() { return mOptions; }
	bool Parse();
	Namespace* GetOrCreateNamespace(QString pName);

protected:
	bool ParseSource(QString pSource);
	
private:
	ProjectOptions* mOptions;
	QMap<QString, Namespace*> mNamespaces;
	QMap<QString, SourceFile*> mSourceFiles;
};

#endif	/* _PROJECT_H */

